Historically, computing devices were separately encased with their own enclosures, as is still common in single-office/home-office (SOHO) environments. However, supporting such computing devices within enterprise environments has been found to be prohibitively expensive. Therefore, more recently computing devices have begun to be collectively housed within chassis, as separate computing device “blades” that plug into the chassis.
Along with this development, another trend to reducing maintenance costs of computing devices is to house their storage devices in one more separate enclosures, such as within a storage-area network (SAN). Nearly all modern-day computing devices still need to be booted from a logical storage volume stored on a storage device, like a hard disk drive, and run application programs from and access data stored on such storage volumes. A logical storage volume is a logical collection of data organized over one or more storage devices, such as the storage devices within a SAN. A given computing device may be assigned to one or more storage volumes and boots from one of these storage volumes. In this way, the storage devices are not located within or on computing devices, but separately therefrom.
An issue with any type of computing device environment is that periodically computing devices fail, or periodically computing devices have to be shutdown for regular maintenance. In the most basic failover of one computing device to another, a computing device is manually shutdown and replaced with a cold-spare computing device, which is then booted to replace the shutdown computing device. However, such failover can require the intervention of information technology (IT) personnel, and therefore is costly in terms of the amount of time such personnel have to expend to perform the failover, as well as the length of downtime that is incurred before the cold-spare computing device can be booted to replace the shutdown computing device.
Different technologies have been developed to improve failover. One such technology is virtualization. In virtualization, what an end user views as a computing device is in actuality a virtual computing device that does not correspond to any particular physical computing device. A number of such virtual computing devices may be able to be run from a lesser number of physical computing devices. If a physical computing device has to be shutdown, the virtual computing devices that it hosts are simply migrated to another physical computing device before shutdown. Failover thus occurs relatively quickly, and with a minimum of downtime, if any.
Another such technology is clustering. In clustering, a number of computing devices are associated with one another as a cluster. One computing device within the cluster may be able to easily take over for another computing device within the cluster when the latter computing device has to be shutdown. As with virtualization, failover occurs relatively quickly, with a minimum of downtime, if any. Clustering and virtualization may further be employed together.
However, virtualization, clustering, and other such failover-oriented technologies are disadvantageous due to the presently high costs associated with these solutions. Both technologies can require costly hardware and/or software, as well as relatively sophisticated training for the IT personnel of an organization. Many organizations that would benefit from faster computing device failover cannot afford to modify their entire computing device topologies to take advantage of virtualization and/or clustering. For this and other reasons, therefore, there is a need for the present invention.